package extras;

import java.util.ArrayList;
import java.util.Set;

import activities.MainActivity;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

public class leerPreferencias {
	// nombres preferencias
	
	public static final String RED_VALIDA = "redValida";
	public static final String NOTIFICAR_PROMOCION = "notificarPromocionHot";
	public static final String NOTIFICAR_CENTRO_ASOCIADO = "notificarCentroAsociado";
	public static final String PRIMERA_VEZ = "primeraVez";
	public static final String TW_ACCTOKEN_SECRET = "twitter_access_token_secret2";
	public static final String TW_ACCTOKEN = "twitter_access_token2";
	public static final String CARGAR_PAISES="cargarPaises";
	public static final String CARGAR_PAISES_COMERCIO="cargarPaisesComercio";
	public static final String CATEGORIA_COMERCIO = "categoriaComercio";
	public static final String CATEGORIA_PROMOCION_HOT = "categoriaPromocionHot";
	public static final String CATEGORIA_PROMOCION_COMUN = "categoriaPromocionComun";
	public static final String TIPO_DE_PAGO_PROMOCION_COMUN = "tipoPagoComun";
	public static final String TIPO_DE_PAGO_PROMOCION_HOT="tipoPagoHot";
	
	
	
	

	/**
	 * Este metodo guarda la preferencia e si el telfono esta conctaod a una red valida o no
	 * @param parametroContexto
	 * @param redValida
	 */
	public static void writeConexionValida(Context parametroContexto, boolean redValida){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto); 
		SharedPreferences.Editor editor = preferencias.edit();
		editor.putBoolean("redValida", redValida);
		editor.commit();
	}
	
	/**
	 * Metodo que lee la preferencia de red valida
	 * @param parametroContexto
	 * @return
	 */
	public static boolean readConexionValida(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getBoolean("redValida", false);
	}

	public static void writeNotificarPromocionHot(Context parametroContexto, boolean notificar){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		SharedPreferences.Editor editor = preferencias.edit();
		editor.putBoolean(NOTIFICAR_PROMOCION, notificar);
		editor.commit();
	}
	
	public static boolean readNotificarPromocionHot(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getBoolean(NOTIFICAR_PROMOCION, true);
	}
	
	public static void writeNotificarCentroAsociado(Context parametroContexto, boolean notificar){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		SharedPreferences.Editor editor = preferencias.edit();
		editor.putBoolean("notificarCentroAsociado", notificar);
		editor.commit();
	}
	
	public static boolean readNoticarCentroAsociado(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getBoolean("notificarCentroAsociado", true);
	}
	public static void writePrimeraVez(Context parametroContexto , boolean notificar){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		SharedPreferences.Editor editor = preferencias.edit();
		editor.putBoolean(PRIMERA_VEZ, notificar);
		editor.commit();
	}
	
	public static boolean readPrimeraVez(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getBoolean(PRIMERA_VEZ, true);
	}
	
	
	/**
	 * estas preferencias especiales para el manejo de tiwtter, 
	 * sirven para ver si hay datos guardados sobre el logueo en twitter
	 * y si no lo hay llamar a un web view para que inicie session y guardar los datos
	 */
	
	public static void writeACCTOKEN(Context parametroContexto , String token){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		SharedPreferences.Editor editor = preferencias.edit();
		editor.putString(TW_ACCTOKEN, token);
		editor.commit();
	}
	
	public static String readACCTOKEN(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getString(TW_ACCTOKEN, "");
	}
	
	public static void writeACCTOKENSECRET(Context parametroContexto , String token){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		SharedPreferences.Editor editor = preferencias.edit();
		editor.putString(TW_ACCTOKEN_SECRET, token);
		editor.commit();
	}
	
	public static String readACCTOKENSECRET(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getString(TW_ACCTOKEN_SECRET, "");
	}
	
	public static String readFiltroPais(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getString("filtroPais", "13");
	}

	
	public static String readFiltroEstado(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getString("filtroProvincia", "-1");
	}

	
	public static boolean readCargarPaisesPreferences(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getBoolean(CARGAR_PAISES, true);
	}
	
	public static String readCodigoGCM(Context parametroContexto){
		SharedPreferences preferencias =
				parametroContexto.getSharedPreferences(MainActivity.class.getSimpleName(), 
		                Context.MODE_PRIVATE); 
		return preferencias.getString("registration_id", "");
		
	}
	
	public static String readTonoNotificacion(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getString("sonidoNotificacion", "");
		
	}
	
	
	
	public static void writeCargarPaises(Context parametroContexto , boolean token){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		SharedPreferences.Editor editor = preferencias.edit();
		editor.putBoolean(CARGAR_PAISES, token);
		editor.commit();
	}
	
	/**
	 * Toma como parametro el tipo de cateogira (para comercio o promocion hot/comun)
	 * y devuelve un vector de enteros que tiene las categorias seleccionadas
	 * @param parametroContexto
	 * @return
	 */
	public static String readCategoria(Context parametroContexto, String categoriaALEER){
		String vCategorias ="0,0";
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		Set<String> categorias = preferencias.getStringSet(categoriaALEER, null);
		
		if(categorias !=null&&categorias.size()>0){
			vCategorias = "";
		    if(!categorias.isEmpty())
		    {
			    int i = 0;
			    for(String categoria: categorias){
			    	vCategorias+=categoria+"," ;
			    	i++;
				    
			    }
		    }
		}
		return vCategorias;
	}
	
	public static String readTipoPago(Context parametroContexto, String tipoPagoALeer){
		String sTipoPago = "0,0";
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		Set<String> tiposDePago = preferencias.getStringSet(tipoPagoALeer, null);
		
		if(tiposDePago !=null&&tiposDePago.size()>0){
			sTipoPago = "";
		    if(!tiposDePago.isEmpty())
		    {
			    int i = 0;
			    for(String categoria: tiposDePago){
			    	sTipoPago+=categoria+"," ;
			    	i++;
				    
			    }
			    
		    }
		}
		return sTipoPago;
	}
	
	
	public static String readPromoComunCentro(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getString("centrosPromosComunes", "-1");
		
	}
	public static String readPromoComunComercio(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getString("comerciosPromosComunes", "-1");
		
	}
	
	public static boolean readActualizacionAutomatica(Context parametroContexto){
		SharedPreferences preferencias =
				PreferenceManager.getDefaultSharedPreferences(parametroContexto);
		return preferencias.getBoolean("actualizarCentrosAutomatica", true);
	}
	
	
	
	

	
}
